import router from "./router";
import store from "./store";

// 白名单
const whiteList = ["/login"];
/**
 * 路由前置守卫
 * to：要到哪里去
 * from：你是哪里来
 * next：是否要进去
 */
router.beforeEach(async (to, from, next) => {
  // 存在 token ，进入主页
  // if (store.state.user.token) {
  // 快捷访问
  if (store.getters.token) {
    // 1. 用户已登录，则不允许进入login
    if (to.path === "/login") {
      next("/");
    } else {
      // 判断用户资料是否获取，若不存在用户信息，则需要获取用户信息
      if (!store.getters.hasUserInfo) {
        // 触发获取用户信息的 action
        await store.dispatch("user/userInfoAction");
      }
      next();
    }
  } else {
    // 2. 用户未登录，没有token的情况下，可以进入白名单
    if (whiteList.indexOf(to.path) > -1) {
      next();
    } else {
      next("/login");
    }
  }
});
